package br.com.news.database.entities;

import java.util.Date;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

import br.com.news.database.utils.BaseEntity;

@Entity
@Table(name = "CategoriaUsuario")
public class CategoriaUsuarioEntity extends BaseEntity {

	private static final long serialVersionUID = 6038621391515875274L;

	@Id
	@GeneratedValue
	private Long idCategoriaUsuario;

	@ManyToOne
	@JoinColumn(name="idCategoria")
	private CategoriaEntity categoria;

	@ManyToOne
	@JoinColumn(name="idUsuarioTipo")
	private UsuarioTipoEntity usuariotipo;
	
	@ManyToOne
	@JoinColumn(name="idUsuario")
	private UsuarioEntity usuario;

	private Date data;
	private boolean status;
	private Date dataInativacao;
	private boolean flagRecebeEmail;

	public CategoriaUsuarioEntity() {
	}

	public CategoriaUsuarioEntity(CategoriaEntity categoria,
			UsuarioTipoEntity usuariotipo, Date data, boolean status) {
		this.categoria = categoria;
		this.usuariotipo = usuariotipo;
		this.data = data;
		this.status = status;
	}

	public CategoriaUsuarioEntity(CategoriaEntity categoria,
			UsuarioTipoEntity usuariotipo, Date data, boolean status,
			Date dataInativacao) {
		this.categoria = categoria;
		this.usuariotipo = usuariotipo;
		this.data = data;
		this.status = status;
		this.dataInativacao = dataInativacao;
	}

	public Long getIdCategoriaUsuario() {
		return this.idCategoriaUsuario;
	}

	public void setIdCategoriaUsuario(Long idCategoriaUsuario) {
		this.idCategoriaUsuario = idCategoriaUsuario;
	}

	public CategoriaEntity getCategoria() {
		return this.categoria;
	}

	public void setCategoria(CategoriaEntity categoria) {
		this.categoria = categoria;
	}

	public UsuarioTipoEntity getUsuariotipo() {
		return this.usuariotipo;
	}

	public void setUsuariotipo(UsuarioTipoEntity usuariotipo) {
		this.usuariotipo = usuariotipo;
	}

	public Date getData() {
		return this.data;
	}

	public void setData(Date data) {
		this.data = data;
	}

	public boolean isStatus() {
		return this.status;
	}

	public void setStatus(boolean status) {
		this.status = status;
	}

	public Date getDataInativacao() {
		return this.dataInativacao;
	}

	public void setDataInativacao(Date dataInativacao) {
		this.dataInativacao = dataInativacao;
	}

	public boolean isFlagRecebeEmail() {
		return flagRecebeEmail;
	}

	public void setFlagRecebeEmail(boolean flagRecebeEmail) {
		this.flagRecebeEmail = flagRecebeEmail;
	}

	public UsuarioEntity getUsuario() {
		return usuario;
	}

	public void setUsuario(UsuarioEntity usuario) {
		this.usuario = usuario;
	}
	
	

}
